The characterizing feature of peer-to-peer systems—namely a decentralized, distributed architecture—is also its weakest link. Security issues remain one of the primary blocks to the adoption of peer-to-peer systems beyond use with previously known and trusted partners, as many peer-to-peer applications require secure communication between peers.
A key issue in secure communication between peers is authentication of peers. Another issue is to establish a secure session by using a “fresh” secret session key. The notion of “freshness” is important to avoid the replay attack. A replay attack involves the interception of communications, and subsequently impersonation of the sender by retransmitting the intercepted communication. By using a “fresh” or new session key, impersonation by retransmission can be avoided.
Secure peer-to-peer communications can be implemented using techniques such as Secured Socket Layer (SSL), which is designed for communications between a server and clients. Secured Socket Layer technology can be applied to peer-to-peer communications, but is not intended for or particularly suited to secure communication between peers.
Accordingly, an improved approach to securing peer-to-peer communications is clearly required.